import request from './request'

/**
 * 查询用户设置信息
 *
 * 该函数用于发送 HTTP GET 请求到后端的 "/setting" 接口，
 * 获取当前登录用户的个人设置信息（如头像、手机号、昵称、生日等）
 *
 * @returns {Promise} 返回一个 Promise 对象
 *                   成功时：resolve 回调接收后端返回的用户设置数据（格式通常为 {code, data, msg}）
 *                   失败时：reject 回调接收错误信息（如网络错误、接口异常等）
 *
 * @example
 * // 调用示例
 * queryUserSettingInfo()
 *   .then(response => {
 *     console.log('用户设置信息：', response.data);
 *     // 处理用户设置数据（如渲染到页面）
 *   })
 *   .catch(error => {
 *     console.error('查询用户设置失败：', error);
 *   });
 */
export const queryUserSettingInfo = () => {
    // 发送 GET 请求到 "/setting" 接口获取用户设置信息
    return request.get("/setting");
};

/**
 * 更新用户个人信息
 * 采用RESTful风格的PATCH方法，仅提交需要修改的字段（空值字段不会被处理）
 *
 * @param {Object} param - 请求参数对象，包含需要更新的用户信息字段
 * @param {string|null} [param.imageUrl] - 用户头像图片URL，可选，为null或不传递则不更新该字段
 * @param {string|null} [param.phoneNumber] - 用户手机号码，需符合11位数字格式，可选
 * @param {string|null} [param.nickName] - 用户昵称，最大长度20字符，可选
 * @param {string|null} [param.birthday] - 用户生日，格式为yyyy-MM-dd，可选
 * @returns {Promise} - 返回一个Promise对象，resolve为请求成功的响应数据，reject为请求失败信息
 */
export const updateUserInformation = (param) => {
    return request.patch("/setting", {
        imageUrl: param.avatar,    // 头像URL，如"https://example.com/avatar.jpg"
        phoneNumber: param.phone,  // 手机号，如"13800138000"
        nickName: param.nickName,    // 昵称，如"张三"
        birthday: param.birthday     // 生日，如"1990-01-01"
    })
}
    

